package com.flysky.service.finance;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.flysky.model.finance.BigTypeHbmModel;
import com.flysky.model.finance.FinanceHbmModel;

public interface IFinanceService {
	
	/**
	 * get all big type information integrated with small type information
	 * @return List of BigTypeHbmModel
	 */
	public List<BigTypeHbmModel> getAllBigType();
	
	/**
	 * add a bigType item by offering a type name
	 * @param typeName
	 */
	public void addbigType(String typeName);
	
	/**
	 * delete a big type by offering a type id
	 * @param typeId
	 */
	public void deleteBigType(String typeId);
	
	/**
	 * add a small type by offering a small type name and big type id
	 * @param typeName
	 * @param bigTypeId
	 */
	public void addSmallType(String typeName,String bigTypeId);
	
	/**
	 * delete a small type by offering a small type id
	 * @param typeId
	 */
	public void deleteSmallType(String typeId);
	
	/**
	 * add a new finance item, using small type id to get the small type model.
	 * integrate the two model.
	 * @param financeModel
	 * @param smallTypeId
	 */
	public void addNewFinance(FinanceHbmModel financeModel,String smallTypeId);
	
	/**
	 * get All Finance items to statics for a chart
	 * @param paramMap
	 * ----key----value---
	 * ---MAKER-----------
	 * ........
	 * @return
	 */
	public List<FinanceHbmModel> getAllFinanceItems(HashMap<String,String> paramMap);
	
	/**
	 * get finance counts of this month
	 * @param paramMap
	 * @return
	 */
	public Long getMonthFinanceCounts(HashMap<String,String> paramMap);
	
	/**
	 * get detail or collection information about the finance.
	 * @param paramMap
	 * @return
	 */
	public Map<String,String> viewFinanceInfo(HashMap<String,String> paramMap);
}
